package com.ruoyi.lock.service.impl;

import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.lock.domain.ABuildHome;
import com.ruoyi.lock.mapper.ABuildHomeMapper;
import com.ruoyi.lock.service.IABuildHomeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 房屋管理Service业务层处理
 * 
 * @author arvin
 * @date 2025-03-06
 */
@Service
public class ABuildHomeServiceImpl implements IABuildHomeService 
{
    @Autowired
    private ABuildHomeMapper aBuildHomeMapper;

    /**
     * 查询房屋管理
     * 
     * @param id 房屋管理主键
     * @return 房屋管理
     */
    @Override
    public ABuildHome selectABuildHomeById(Long id)
    {
        return aBuildHomeMapper.selectABuildHomeById(id);
    }    @Override
    public ABuildHome selectABuildHomeById2(Long id)
    {
        return aBuildHomeMapper.selectABuildHomeById2(id);
    }

    /**
     * 查询房屋管理列表
     * 
     * @param aBuildHome 房屋管理
     * @return 房屋管理
     */
    @Override
    @DataScope(deptAlias = "d")
    public List<ABuildHome> selectABuildHomeList(ABuildHome aBuildHome)
    {
        return aBuildHomeMapper.selectABuildHomeList(aBuildHome);
    }  /**
     * 查询房屋管理列表
     *
     * @param aBuildHome 房屋管理
     * @return 房屋管理
     */
    @Override
    @DataScope(deptAlias = "d")
    public List<ABuildHome> selectABuildHomeList2(ABuildHome aBuildHome)
    {
        return aBuildHomeMapper.selectABuildHomeList2(aBuildHome);
    }
    
    /**
     * 查询房间统计信息
     * 
     * @param aBuildHome 房屋管理
     * @return 房间统计信息
     */
    @Override
    @DataScope(deptAlias = "d")
    public JSONObject selectRoomStatistics(ABuildHome aBuildHome)
    {
        return aBuildHomeMapper.selectRoomStatistics(aBuildHome);
    }

    /**
     * 新增房屋管理
     * 
     * @param aBuildHome 房屋管理
     * @return 结果
     */
    @Override
    public int insertABuildHome(ABuildHome aBuildHome)
    {
        return aBuildHomeMapper.insertABuildHome(aBuildHome);
    }

    /**
     * 修改房屋管理
     * 
     * @param aBuildHome 房屋管理
     * @return 结果
     */
    @Override
    public int updateABuildHome(ABuildHome aBuildHome)
    {
        return aBuildHomeMapper.updateABuildHome(aBuildHome);
    }

    /**
     * 批量删除房屋管理
     * 
     * @param ids 需要删除的房屋管理主键
     * @return 结果
     */
    @Override
    public int deleteABuildHomeByIds(Long[] ids)
    {
        return aBuildHomeMapper.deleteABuildHomeByIds(ids);
    }

    /**
     * 删除房屋管理信息
     * 
     * @param id 房屋管理主键
     * @return 结果
     */
    @Override
    public int deleteABuildHomeById(Long id)
    {
        return aBuildHomeMapper.deleteABuildHomeById(id);
    }

    /**
     * 根据用户ID查询用户入住的房间列表
     * 
     * @param userId 用户ID
     * @return 房间列表
     */
    @Override
    public List<ABuildHome> selectABuildHomeListByUserId(Long userId)
    {
        return aBuildHomeMapper.selectABuildHomeListByUserId(userId);
    } @Override
    public List<ABuildHome> selectABuildHomeListByUserId2(Long userId)
    {
        return aBuildHomeMapper.selectABuildHomeListByUserId2(userId);
    }

    /**
     * 查询用户未入住的房间列表（过滤掉已入住的房间）
     * 
     * @param aBuildHome 房屋管理对象，包含userId用于过滤
     * @return 房间列表
     */
    @Override
    @DataScope(deptAlias = "d")
    public List<ABuildHome> selectABuildHomeListByUserIdruzhu(ABuildHome aBuildHome)
    {
        return aBuildHomeMapper.selectABuildHomeListByUserIdruzhu(aBuildHome);
    }
}
